﻿using RndMaterialDisposalService.Models;
using RndMaterialDisposalService.Models.RequestModel;

namespace RndMaterialDisposalService.Services.Interface
{
    /// <summary>
    /// 
    /// </summary>
    public interface ISMOService
    {
        /// <summary>
        /// 
        /// </summary>
        /// <param name="procInstId"></param>
        /// <returns></returns>
        Task<ApplicationDataModel> GetApplicationData(string procInstId);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="formId"></param>
        /// <returns></returns>
        Task<ApplicationDataModel> GetApplicationDataByFormId(int formId);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="procInstId"></param>
        /// <param name="currentStatus"></param>
        /// <param name="currentUserID"></param>
        /// <returns></returns>
        Task<int> UpdateApplicationCurrentStatus(int procInstId, string currentStatus, string currentUserID);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="procInstId"></param>
        /// <param name="currentActivity"></param>
        /// <param name="moduleName"></param>
        /// <param name="functionName"></param>
        /// <returns></returns>
        Task<int> UpdateToDoCurrentActivity(int procInstId, string currentActivity, string moduleName, string functionName);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="procInstId"></param>
        /// <param name="functionUrl"></param>
        /// <param name="currentStatus"></param>
        /// <returns></returns>
        Task<int> UpdateToDo(int procInstId, string functionUrl, string currentStatus);
    }
}
